package com.mmall.concurrency.example.immutable;

import com.google.common.collect.Maps;
import com.mmall.concurrency.annoations.NotThreadSafe;
import lombok.extern.slf4j.Slf4j;

import java.util.Map;

@Slf4j
@NotThreadSafe
public class ImmutableExample1 {

    private final static Integer a = 1;
    private final static String b = "2";
    // HashMap是线程不安全的
    private final static Map<Integer, Integer> map = Maps.newHashMap();

    static {
        map.put(1, 2);
        map.put(3, 4);
        map.put(5, 6);
    }

    public static void main(String[] args) {
        // a = 2;  // 基础数据类型,不可修改
        // b = "3";  // 基础数据类型,不可修改
        // map = Maps.newHashMap();  // 对象类型,不能修改对象指向
        map.put(1, 3);  // 对象类型,可以修改里面的内容
        log.info("{}", map.get(1));
    }

    // final 修饰参数
    private void test(final int a) {
        // a = 1;  // 如果是基础数据类型.也是不能够修改的
    }

}
